package com.ruoyi.reserve.service.impl;

import com.ruoyi.reserve.domain.CheckGroup;
import com.ruoyi.reserve.domain.CheckgroupCheckitem;
import com.ruoyi.reserve.domain.Checkitem;
import com.ruoyi.reserve.mapper.CheckgroupMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class CheckGroupServiceImpl implements ICheckGroupService{
    @Autowired
    private CheckgroupMapper checkgroupMapper;



    @Override
    public List<CheckGroup> getList(CheckGroup checkGroup) {
        return checkgroupMapper.selectGroupList(checkGroup);
    }

    @Override
    @Transactional
    public int deleteGroupByIds(Integer[] groupId) {
        return checkgroupMapper.deleteGroupByIds(groupId);
    }

    /**
     * 新增保存岗位信息
     *
     * @param checkGroup 岗位信息
     * @return 结果
     */
    @Override
    public int insertGroup(CheckGroup checkGroup) {
        return checkgroupMapper.insertGroup(checkGroup);
    }


    /**
     * 根据id获取该条检查组的详情
     * @param id
     * @return
     */
    @Override
    public CheckGroup getInfo(Integer id) {
        return checkgroupMapper.getInfo(id);
    }

    /**
     * 更新检查组
     */
    @Override
    @Transactional
    public int updateGroup(CheckGroup checkGroup) {
        return checkgroupMapper.updateGroup(checkGroup);
    }

    /**
     * 新增时 根据编号查询检查组是否存在
     * @param code
     * @return
     */
    @Override
    public CheckGroup getInfoByCode(String code) {
        return checkgroupMapper.getInfoByCode(code);
    }

    /**
     * 新增时 根据名称查询检查组是否存在
     * @param name
     * @return
     */
    @Override
    public CheckGroup getInfoByName(String name) {
        return checkgroupMapper.getInfoByName(name);
    }

    /**
     * 删除检查组中的检查项
     * @param groupId
     * @param checkgroupCheckitems
     * @return
     */
    @Override
    public int deleteGroupByItemsByIds(Integer groupId, List<CheckgroupCheckitem> checkgroupCheckitems) {
        return checkgroupMapper.deleteGroupByItemsByIds(groupId, checkgroupCheckitems);
    }

    /**
     * 查询可以被该检查组添加的检查项(刨除该检查组所拥有的检查项)
     * @param checkGroup 检查组对象,用来获取其中的检查组id
     * @return 返回的是可以被添加的检查项数组
     */
    @Override
    public List<Checkitem> getInfoByCheckGroup(CheckGroup checkGroup) {
        return checkgroupMapper.getInfoByCheckGroup(checkGroup);
    }

    /**
     * 新增指定检查组中的检查项
     * @param checkgroupCheckitems
     * @return
     */
    @Override
    public int addCheckGroupItems(List<CheckgroupCheckitem> checkgroupCheckitems) {
        return checkgroupMapper.addCheckGroupItems(checkgroupCheckitems);
    }
}
